
########## 文件 ##########
# 目标文件(*)
TARGET = server

# 源文件
SRCS = $(wildcard *.c)

# 中间目标文件
OBJS = $(SRCS:.c=.o)

########## 编译 ##########
# 指定编译器
CC = gcc

# 宏定义(*)
DEFS +=

# 头文件查找路径(*)
INC = -I../include/

CFLAGS += -Wall -fno-strict-aliasing -W -std=gnu99
CFLAGS += ${DEFS} $(INC)

########## 链接 ##########
# 优化选项(*)
OFLAGS += -Os
LDFLAGS += $(OFLAGS) -Wl,-Bstatic -Wl,-Bdynamic -lpthread

########## 不变规则 ##########
all:$(TARGET)

# 链接为可执行文件
$(TARGET):$(OBJS)
	$(CC) ${LDFLAGS} -o $@ $^

%.o:%.c
	$(CC) $(CFLAGS) -o $@ -c $<

clean:
	rm -rf $(TARGET) $(OBJS)
